package com.atguigu.srb.sms.feign;

import com.atguigu.common.results.R;
import com.atguigu.srb.sms.feign.fallback.CoreClientFallback;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.cloud.openfeign.SpringQueryMap;
import org.springframework.web.bind.annotation.*;

//远程访问service-core的客户端
// value参数： 代表当前客户端要远程访问的注册中心的服务名 ，远程访问时可以使用它 获取注册中心的服务的ip+端口号列表
//192.168.137.1 8112  + //http://192.168.137.1:8110
@FeignClient(value = "service-core",fallback = CoreClientFallback.class)
public interface ServiceCoreClient {
    // get请求访问 http://192.168.137.1:8110/api/core/userInfo/isRegisted/mobile
    //抽象方法 封装要访问接口的路径+参数+返回值类型
    @GetMapping("/api/core/userInfo/isRegisted/{mobile}")
    public R isRegisted(@PathVariable("mobile")String mobile);


    @PostMapping("/api/core/userInfo/test1")
    public R test1(@RequestBody R r);
    //openfeign客户端对象创建时 方法形参如果没有加注解 默认使用请求体方式传参
    @PostMapping("/api/core/userInfo/test2")
    public R test2(@RequestParam String username,@RequestParam  String password);

    @PostMapping("/api/core/userInfo/test3")
//    public R test3(R r);//默认以请求体方式提交，但是core服务希望以请求参数的方式pojo入参
    public R test3(@SpringQueryMap R r);//SpringQueryMap注解可以将对象转为请求参数拼接到url地址后
}
